package com.happy.controller;

import com.happy.pojo.RequestMessage;
import com.happy.pojo.User;
import com.happy.service.ModuleService;
import com.happy.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.github.pagehelper.util.StringUtil;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;


/**
 * @Author: happy
 * @Date: 2021/9/21 21:37
 * @Version: 1.0
 */
@Controller
@RequestMapping
public class LoginController extends BaseController{

    @Autowired
    private UserService userService;

    @Autowired
    private ModuleService moduleService;

	@RequestMapping("/login")
	public String login(String username,String password) {
	    //1、传入参数的判断，如果email和password为空，停留在login.jsp页面，并且提示
        if (StringUtil.isEmpty(username)||StringUtil.isEmpty(password)){
            request.setAttribute("error", "用户名或者密码不能为空！");
            return "forward:login.jsp";
        }

        //2、通过邮箱查询数据库，得到用户实体类
        User user = userService.findByUserName(username);
        System.out.println(getIpAddr(request));
        //3、当用户实体类不为null时，写入session，并且跳转home/main页面
        if (user!=null){
            //4、用户输入的密码，数据库里的密码进行比对
            // 这块需要对密进行加密后再比较(用base64即可)
            if (password.equals(user.getPassword())){
                //登录成功：
                session.setAttribute("loginUser", user);

                //   菜单栏信息需要存放session中    有固定菜单 和 动态菜单    固定菜单有:  "添加测试案例","项目介绍","项目管理(superadmin 可以创建应用账户(目前不支持删除账户))"
                //   动态菜单(只包括测试案例 和测试结果),如果有机会再进行逐步完善

                //将模块信息放入session里
                List<RequestMessage> modules = moduleService.findModelsByUser(user);
                session.setAttribute("modules", modules);

                return "pages/home/main";
            }else {
                request.setAttribute("error", "密码输入错误！");
                return "forward:login.jsp";
            }
        }else {
            request.setAttribute("error", "用户名输入有误！");
            return "forward:login.jsp";
        }
	}
}
